static-lib=libmymath.a  #在makefile里面定义变量obj,使用时以$(obj)这中方式使用
dynamic-lib=libmymethod.so

#支持多程序同时编译的原理是makefile会自动找依赖关系所依赖的文件是否存在,若不存在则会递归式的先去形成依赖文件  
.PHONY:all
all:$(dynamic-lib) $(static-lib)


$(dynamic-lib):myprint.o mylog.o
	gcc -shared -o $@ $^
myprint.o:myprint.c
	gcc -fPIC -c $^
mylog.o:mylog.c
	gcc -fPIC -c $^


$(static-lib):mymath.o
	ar -rc $@ $^    #使用ar -rc 命令将.o后缀文件打包成静态库 ar命令是专门形成静态库的！！！
mymath.o:mymath.c
	gcc -c $^    #-c 选项如果不说明目标文件名,会默认形成原文件名的以.o为后缀的文件

.PHONY:clean
clean:
	rm -rf *.o *.a mylib *.so
# 对库和.h文件进行包装   未来别人要使用我们的库，直接把mylib文件发给他就可以了
.PHONY:output
output:
	mkdir -p mylib/include
	mkdir -p mylib/lib
	cp *.h mylib/include
	cp *.a mylib/lib
	cp *.so mylib/lib
	
